home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Pascal / Applications / MakeFat 1.0 / PNL Libraries / MyCallProc.p < prev    next >
Encoding:
Text File  |  1995-10-03  |  7.5 KB  |  258 lines  |  [TEXT/CWIE]

  1. unit MyCallProc;
  2.  
  3. interface
  4.  
  5.     uses
  6.         MixedMode;
  7.  
  8.     const
  9.         uppPascal0ProcInfo = kPascalStackBased + $10*kNoByteCode;
  10.         uppPascal04ProcInfo = kPascalStackBased + $10*kNoByteCode + $40* kFourByteCode;
  11.         uppPascal022ProcInfo = kPascalStackBased + $10*kNoByteCode + $40* kTwoByteCode + $100* kTwoByteCode;
  12.         uppPascal044ProcInfo = kPascalStackBased + $10*kNoByteCode + $40* kFourByteCode + $100* kFourByteCode;
  13.         uppPascal0444ProcInfo = kPascalStackBased + $10*kNoByteCode + $40* kFourByteCode + $100* kFourByteCode + $400* kFourByteCode;
  14.         uppPascal02244ProcInfo = kPascalStackBased + $10*kNoByteCode + $40* kTwoByteCode + $100* kTwoByteCode + $400* kFourByteCode + $1000* kFourByteCode;
  15.         uppPascal04244ProcInfo = kPascalStackBased + $10*kNoByteCode + $40* kFourByteCode + $100* kTwoByteCode + $400* kFourByteCode + $1000* kFourByteCode;
  16.         uppPascal14ProcInfo = kPascalStackBased + $10*kOneByteCode + $40* kFourByteCode;
  17.         uppPascal2ProcInfo = kPascalStackBased + $10*kTwoByteCode;
  18.         uppPascal24ProcInfo = kPascalStackBased + $10*kTwoByteCode + $40* kFourByteCode;
  19.         uppPascal44ProcInfo = kPascalStackBased + $10*kFourByteCode + $40* kFourByteCode;
  20.         uppC04ProcInfo = kCStackBased + $10*kNoByteCode + $40* kFourByteCode;
  21.         uppC24ProcInfo = kCStackBased + $10*kTwoByteCode + $40* kFourByteCode;
  22.         uppC244ProcInfo = kCStackBased + $10*kTwoByteCode + $40* kFourByteCode + $100* kFourByteCode;
  23.         uppC2444ProcInfo = kCStackBased + $10*kTwoByteCode + $40* kFourByteCode + $100* kFourByteCode + $400* kFourByteCode;
  24.         uppC244444ProcInfo = kCStackBased + $10*kTwoByteCode + $40* kFourByteCode + $100* kFourByteCode + $400* kFourByteCode + $1000* kFourByteCode + $4000* kFourByteCode;
  25.         
  26.     function NewProc(userRoutine: ProcPtr; upp:longint): UniversalProcPtr;
  27. {$IFC not GENERATINGPOWERPC }
  28.     inline
  29.         $584F,$2E9F;
  30. {$ENDC}
  31.  
  32.     function New68kProc(userRoutine: ProcPtr; upp:longint): UniversalProcPtr;
  33. {$IFC not GENERATINGPOWERPC }
  34.     inline
  35.         $584F,$2E9F;
  36. {$ENDC}
  37.  
  38.     procedure CallPascal0 (proc: UniversalProcPtr);
  39. {$IFC not GENERATINGPOWERPC}
  40.     inline
  41.         $205F, $4E90;
  42. {$ENDC}
  43.  
  44.     procedure CallPascal04 (p1:univ SInt32; proc: UniversalProcPtr);
  45. {$IFC not GENERATINGPOWERPC}
  46.     inline
  47.         $205F, $4E90;
  48. {$ENDC}
  49.  
  50.     procedure CallPascal022 (p1:univ SInt16; p2: univ SInt16; proc: UniversalProcPtr);
  51. {$IFC not GENERATINGPOWERPC}
  52.     inline
  53.         $205F, $4E90;
  54. {$ENDC}
  55.  
  56.     procedure CallPascal044 (p1:univ SInt32; p2: univ SInt32; proc: UniversalProcPtr);
  57. {$IFC not GENERATINGPOWERPC}
  58.     inline
  59.         $205F, $4E90;
  60. {$ENDC}
  61.  
  62.     procedure CallPascal0444 (p1:univ SInt32; p2:univ SInt32; p3:univ SInt32; proc: UniversalProcPtr);
  63. {$IFC not GENERATINGPOWERPC}
  64.     inline
  65.         $205F, $4E90;
  66. {$ENDC}
  67.  
  68.     procedure CallPascal02244 (p1:univ SInt16; p2: univ SInt16; p3:univ SInt32; p4:univ SInt32;  proc: UniversalProcPtr);
  69. {$IFC not GENERATINGPOWERPC}
  70.     inline
  71.         $205F, $4E90;
  72. {$ENDC}
  73.  
  74.     procedure CallPascal04244 (p1:univ SInt32; p2: univ SInt16; p3:univ SInt32; p4:univ SInt32;  proc: UniversalProcPtr);
  75. {$IFC not GENERATINGPOWERPC}
  76.     inline
  77.         $205F, $4E90;
  78. {$ENDC}
  79.  
  80.     function CallPascal14 (p1:univ SInt32; proc: UniversalProcPtr): SInt8;
  81. {$IFC not GENERATINGPOWERPC}
  82.     inline
  83.         $205F, $4E90;
  84. {$ENDC}
  85.  
  86.     function CallPascalB4 (p1:univ SInt32; proc: UniversalProcPtr): Boolean;
  87. {$IFC not GENERATINGPOWERPC}
  88.     inline
  89.         $205F, $4E90;
  90. {$ENDC}
  91.  
  92.     function CallPascal2(proc: UniversalProcPtr):SInt16;
  93. {$IFC not GENERATINGPOWERPC}
  94.     inline
  95.         $205F, $4E90;
  96. {$ENDC}
  97.  
  98.     function CallPascal24(p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  99. {$IFC not GENERATINGPOWERPC}
  100.     inline
  101.         $205F, $4E90;
  102. {$ENDC}
  103.  
  104.     function CallPascal44(p1:univ SInt32; proc: UniversalProcPtr):SInt32;
  105. {$IFC not GENERATINGPOWERPC}
  106.     inline
  107.         $205F, $4E90;
  108. {$ENDC}
  109.  
  110.     procedure CallC04(p1:univ SInt32; proc: UniversalProcPtr);
  111. {$IFC not GENERATINGPOWERPC}
  112.     inline
  113.         $205F, $4E90,$584F;
  114. {$ENDC}
  115.  
  116.     function CallC24(p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  117. {$IFC not GENERATINGPOWERPC}
  118.     inline
  119.         $205F, $4E90,$584F,$3E80;
  120. {$ENDC}
  121.  
  122.     function CallC244(p2,p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  123. {$IFC not GENERATINGPOWERPC}
  124.     inline
  125.         $205F, $4E90,$504F,$3E80;
  126. {$ENDC}
  127.  
  128.     function CallC2444(p3,p2,p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  129. {$IFC not GENERATINGPOWERPC}
  130.     inline
  131.         $205F, $4E90,$DEFC,$000C,$3E80;
  132. {$ENDC}
  133.  
  134.     function CallC244444(p5,p4,p3,p2,p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  135. {$IFC not GENERATINGPOWERPC}
  136.     inline
  137.         $205F, $4E90,$DEFC,$0014,$3E80;
  138. {$ENDC}
  139.  
  140. implementation
  141.  
  142. {$IFC GENERATINGPOWERPC}
  143.  
  144.     function NewProc(userRoutine: ProcPtr; upp:longint): UniversalProcPtr;
  145.     begin
  146.         NewProc:=NewRoutineDescriptor(userRoutine,upp,GetCurrentISA);
  147.     end;
  148.  
  149.     function New68kProc(userRoutine: ProcPtr; upp:longint): UniversalProcPtr;
  150.     begin
  151.         New68kProc:=NewRoutineDescriptor(userRoutine,upp,kM68kISA);
  152.     end;
  153.  
  154.     procedure CallPascal0 (proc: UniversalProcPtr);
  155.         var
  156.             junk_long:longint;
  157.     begin
  158.         junk_long:= CallUniversalProc(proc, uppPascal0ProcInfo);
  159.     end;
  160.  
  161.     procedure CallPascal04 (p1:univ SInt32; proc: UniversalProcPtr);
  162.         var
  163.             junk_long:longint;
  164.     begin
  165.         junk_long:= CallUniversalProc(proc, uppPascal04ProcInfo, p1);
  166.     end;
  167.  
  168.     procedure CallPascal022 (p1:univ SInt16; p2: univ SInt16; proc: UniversalProcPtr);
  169.         var
  170.             junk_long:longint;
  171.     begin
  172.         junk_long:= CallUniversalProc(proc, uppPascal022ProcInfo, p1,p2);
  173.     end;
  174.  
  175.     procedure CallPascal044 (p1:univ SInt32; p2: univ SInt32; proc: UniversalProcPtr);
  176.         var
  177.             junk_long:longint;
  178.     begin
  179.         junk_long:= CallUniversalProc(proc, uppPascal044ProcInfo, p1,p2);
  180.     end;
  181.  
  182.     procedure CallPascal0444 (p1:univ SInt32; p2:univ SInt32; p3:univ SInt32; proc: UniversalProcPtr);
  183.         var
  184.             junk_long:longint;
  185.     begin
  186.         junk_long:= CallUniversalProc(proc, uppPascal0444ProcInfo, p1,p2,p3);
  187.     end;
  188.  
  189.     procedure CallPascal02244 (p1:univ SInt16; p2: univ SInt16; p3:univ SInt32; p4:univ SInt32;  proc: UniversalProcPtr);
  190.         var
  191.             junk_long:longint;
  192.     begin
  193.         junk_long:= CallUniversalProc(proc, uppPascal02244ProcInfo, p1,p2,p3,p4);
  194.     end;
  195.  
  196.     procedure CallPascal04244 (p1:univ SInt32; p2: univ SInt16; p3:univ SInt32; p4:univ SInt32;  proc: UniversalProcPtr);
  197.         var
  198.             junk_long:longint;
  199.     begin
  200.         junk_long:= CallUniversalProc(proc, uppPascal04244ProcInfo, p1,p2,p3,p4);
  201.     end;
  202.  
  203.     function CallPascal14 (p1:univ SInt32; proc: UniversalProcPtr): SInt8;
  204.     begin
  205.         CallPascal14:= CallUniversalProc(proc, uppPascal14ProcInfo, p1);
  206.     end;
  207.  
  208.     function CallPascalB4 (p1:univ SInt32; proc: UniversalProcPtr): Boolean;
  209.     begin
  210.         CallPascalB4:= CallUniversalProc(proc, uppPascal14ProcInfo, p1) <> 0;
  211.     end;
  212.  
  213.     function CallPascal2(proc: UniversalProcPtr):SInt16;
  214.     begin
  215.         CallPascal2:= CallUniversalProc(proc, uppPascal2ProcInfo);
  216.     end;
  217.  
  218.     function CallPascal24(p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  219.     begin
  220.         CallPascal24:= CallUniversalProc(proc, uppPascal24ProcInfo, p1);
  221.     end;
  222.  
  223.     function CallPascal44(p1:univ SInt32; proc: UniversalProcPtr):SInt32;
  224.     begin
  225.         CallPascal44:= CallUniversalProc(proc, uppPascal44ProcInfo, p1);
  226.     end;
  227.  
  228.     procedure CallC04(p1:univ SInt32; proc: UniversalProcPtr);
  229.         var
  230.             junk_long:longint;
  231.     begin
  232.         junk_long:= CallUniversalProc(proc, uppC04ProcInfo, p1);
  233.     end;
  234.  
  235.     function CallC24(p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  236.     begin
  237.         CallC24:= CallUniversalProc(proc, uppC24ProcInfo, p1);
  238.     end;
  239.  
  240.     function CallC244(p2,p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  241.     begin
  242.         CallC244:= CallUniversalProc(proc, uppC244ProcInfo, p1, p2);
  243.     end;
  244.  
  245.     function CallC2444(p3,p2,p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  246.     begin
  247.         CallC2444:= CallUniversalProc(proc, uppC2444ProcInfo, p1, p2, p3);
  248.     end;
  249.  
  250.     function CallC244444(p5,p4,p3,p2,p1:univ SInt32; proc: UniversalProcPtr):SInt16;
  251.     begin
  252.         CallC244444:= CallUniversalProc(proc, uppC244444ProcInfo, p1, p2, p3, p4, p5);
  253.     end;
  254.  
  255. {$ENDC}
  256.  
  257. end.
  258.